<?php
/*
 * * * * * * * * * * LICENCIA * * * * * * * * * * * * * * * * * * * * *

Copyright(C) 2014
Instituto Universtiario de Tecnología Dr. Federico Rivero Palacio

Este programa es Software Libre y usted puede redistribuirlo y/o modificarlo
bajo los términos de la versión 3.0 de la Licencia Pública General (GPLv3)
publicada por la Free Software Foundation (FSF), es distribuido sin ninguna
garantía. Usted debe haber recibido una copia de la GPLv3 junto con este
programa, sino, puede encontrarlo en la página web de la FSF, 
específicamente en la dirección http://www.gnu.org/licenses/gpl-3.0.html

 * * * * * * * * * * ARCHIVO * * * * * * * * * * * * * * * * * * * * *

Nombre:Conexion.php
Diseñador: Jhonny Vielma, Johan alamo
Programador: Jhonny Vielma
Fecha: junio del 2014
Descripción: 

	Esta clase ofrece los servicios para realizar la conexion en la base de datos

 * * * * * * * * Cambios/Mejoras/Correcciones/Revisiones * * * * * * * *
			/				      /			         
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

require_once("base/clases/basededatos/PDOConexion.php");

class Conexion{
		public static $baseDeDatos;
		public static $host;
		public static $usuario;
		public static $clave;  
		public static $puerto;


		/* Funcion estatica que permite iniciar todo los atributos de la clase conexcion
		   con los pasados por parametros.Esta permitira tener los atribtos inicializados con
		   los parametros de la conexcion.
		   Parametros de entrada: 
		   		$host= host de la maquina ejem. localhost.
		   		$baseDeDatos: Nombre de la base de datos.
		   		$puerto: puerto ejemp 5432.
				$clave: cotraseña de la base de datos.
				$usuario=usuario de la base de datos ejemp: postgrest.
			Valores de salida:
				No posee.
			Exceptiones que lanza:
				No lanza ninguna.
			Ejemplo:
				Llamar dentro de la clase: self::iniciar('localhost',db_scn,'5432','postgres','12345')
				Fuera de la clase: Conexion::iniciar('localhost',db_scn,'5432','postgres','12345')
		*/
		public static function  iniciar($host, $baseDeDatos, $puerto, $usuario, $clave ){
			self::$host = $host;
			self::$baseDeDatos = $baseDeDatos;
			self::$puerto = $puerto;
			self::$usuario = $usuario;
			self::$clave = $clave;
			
    }

		
		/* Funcion estatica que permite conectarse a la base de datos, mediante la clase 
			PDO.Conectandose con los atributos de la clase antes inicializados.
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				objeto PDO ya conectado.
			Exceptiones que lanza:
				PdoException.
			Ejemplo
				Dentro de la clase self::conectar()
				Fuera de la clase Conexion::conectar()
		*/	
		public static function conectar(){
			return new PDOConexion("pgsql:dbname=".self::$baseDeDatos.";host=".self::$host.";port=".self::$puerto,self::$usuario ,self::$clave);			
		}
		/* Funcion estatica que permite obtener el nombre de la base de datos a la que se quiere
			acceder
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				String del nombre de la base de datos.
			Exceptiones que lanza:
				No lanza
			Ejemplo
				Dentro de la clase self::getBaseDeDatos()
				Fuera de la clase Conexion::getBaseDeDatos()
		*/	
		public static function obtenerBaseDeDatos(){
			return self::$baseDeDatos;
		}
		/* Funcion estatica que permite obtener el host de la base de datos a la que se quiere
			acceder
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				String del host de la base de datos.
			Exceptiones que lanza:
				No lanza
			Ejemplo
				Dentro de la clase self::getHost()
				Fuera de la clase Conexion::getBaseDeDatos()
		*/	
		public static function obtenerHost(){
			return self::$host;
		}

		/* Funcion estatica que permite obtener el usuario de la base de datos a la que se quiere
			acceder
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				String del usuario  de la base de datos.
			Exceptiones que lanza:
				No lanza
			Ejemplo
				Dentro de la clase: getUsuario()
				Fuera de la clase :Conexion::getUsuario()
		*/	
		public static function obtenerUsuario(){
			return self::$usuario;
		}

			/* Funcion estatica que permite obtener la clave de la base de datos a la que se quiere
			acceder
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				String de la clave  de la base de datos.
			Exceptiones que lanza:
				No lanza
			Ejemplo
				Dentro de la clase: getClave()
				Fuera de la clase :Conexion::Clave()
		*/	
		public static function obtenerClave(){
			return self::$clave;
		}
			/* Funcion estatica que permite obtener el puerto de la base de datos a la que se quiere
			acceder
		   Parametros de entrada: 
		   		No posee
			Valores de salida:
				String del puerto  de la base de datos.
			Exceptiones que lanza:
				No lanza
			Ejemplo
				Dentro de la clase: getPuerto()
				Fuera de la clase :Conexion::getPuert()
		*/	
		public static function obtenerPuerto(){
			return self::$puerto;
		}
}
?>
